package com.gelpag.base.business.role;

import been.RoleInfo;
import com.gelpag.base.business.menu.MenuInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RoleMapper {

    //获取所有角色
    List<RoleInfo> getRoleList();

    //根据角色id获取资源url
    List<String> getResourceUrlsByRoleId(String role_id);

    //获取所有的父级菜单
    List<MenuInfo> getChildMenuList(@Param("parent_menu_id")String parent_menu_id, @Param("role_id")String role_id);

    //获得菜单下的所有resource
    List<MenuInfo> getResourcesByMenuId(@Param("menu_id")String menu_id, @Param("role_id")String role_id);

    //清除角色对应的url
    void deleteRoleResource(String role_id);

    //清除角色对应的menu
    void deleRoleMenu(String role_id);
    //
    void insertRoleResource(@Param("resource_role_id") String resource_role_id,
                            @Param("role_id") String role_id,
                            @Param("resource_id") String resource_id);

    //根据resource_ids获取所对应的所有菜单id
    List<String> getMenuIdByResourceId(@Param("list") List<String> resource_id);

    List<String> getParentMenuIdByMenuId(@Param("list") List<String> resource_menu_id_list);

    void insertRoleMenu(@Param("role_menu_id") String role_menu_id,
                        @Param("menu_id") String menu_id,
                        @Param("role_id") String role_id);

    void insertRole(RoleInfo roleInfo);

    void updateRole(RoleInfo roleInfo);

    void deleteRoleById(String role_id);

    int countRoleRelation(String role_id);
}
